/**********************************************************
*
*   @file    useri2c.h
*   @author  Derrick Wang
*   @time    2018-4-26
*		@brief   i2c协议解析文件useri2c.c的头文件
*
*
***********************************************************/
#ifndef __USER_I2C_H
#define __USER_I2C_H

/********REG寄存器结构体*********/
struct userI2cRegStruct  
{
	const uint8_t regAdd;	 //REG寄存器地址	
	uint8_t size; 				 //接收或发送的数据字节大小
	uint8_t tr;  					 //从机操作是读还是写
};


#define CMD_RT_TRANSMIT  0X01    //从机发送
#define CMD_RT_RECEIVE   0X02    //从机接收


#define REG_CHECK_REPLY        (uint8_t)0x55
#define I2C_MAX_ADDRESS        120 //模块最大地址


#define LED_ON()  HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_RESET)
#define LED_OFF() HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_SET)

void user_I2cInit(void);
void user_I2cOverTimeCheck(void);

uint8_t user_I2cGetTransmitData(uint8_t reg,uint8_t *buf);
void user_I2cExecuteCallBack(uint8_t reg,uint8_t *buf,uint8_t size);


void user_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c);
void user_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c);
#endif

